<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <title>加载失败</title>
    <style>
        html, body {
            height: 100%;
            width: 100%;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
            background-color: #FFFFFF;
            -webkit-tap-highlight-color: transparent; /* 移除点击高亮 */
        }
        .container {
            text-align: center;
            margin-top: -50px; /* 整体内容稍微上移一点 */
        }
        .error-image {
            width: 180px; /* 根据实际图片大小调整 */
            height: auto;
            margin-bottom: 24px;
        }
        .error-message {
            font-size: 14px;
            color: #999999;
            margin-bottom: 30px;
        }
        /* 重试按钮 */
        .button {
            box-sizing: border-box;
            width: 160px;
            height: 40px;
            line-height: 40px;
            margin-top: 15px;
            background-color: #FFFFFF;
            color: #6A56E2;
            border: 1px solid #6A56E2;
            border-radius: 20px; /* 圆角 */
            font-size: 16px;
            cursor: pointer;
            text-decoration: none;
            display: block; /* 【布局核心】让每个按钮都占据一整行 */
            transition: background-color 0.1s;
        }
        .button:active { /* 增加点击效果 */
            background-color: #e7f3ff;
        }
        .button-group-title {
            margin-top: 40px;
            color: #adb5bd;
            font-size: 14px;
            border-bottom: 1px solid #dee2e6;
            width: 80%;
            max-width: 300px;
            padding-bottom: 5px;
        }
    </style>
</head>
<body>
<div class="container">
    <!-- 将你的 bg_web_erro.png 图片放到 drawable 或 assets 中, 这里假设放在assets里 -->
    <img src="file:///android_asset/bg_web_error.png" class="error-image" alt="Error illustration"/>
    <p class="error-message">当前网络不可用，请检查网络设置</p>
    <!-- CWebInterface 接口测试 -->
    <!-- 按钮1: 测试 reLoad -->
    <a class="button" id="btn_reload">重试加载</a>

    <!-- 按钮2: 测试 finishView -->
    <a class="button" id="btn_finish">结束页面 (finishView)</a>

    <!-- 按钮3: 测试 goFeedbackView -->
    <a class="button" id="btn_feedback">意见反馈 (goFeedbackView)</a>

    <!-- 按钮4: 测试 goAfterSalesView -->
    <a class="button" id="btn_after_sales">报装报修 (goAfterSalesView)</a>

</div>
<script>
    // 确保在DOM加载完成后再执行脚本，这是保证按钮可点击的关键
    document.addEventListener('DOMContentLoaded', function() {

        // 从URL查询参数中获取失败的URL
        const urlParams = new URLSearchParams(window.location.search);
        // 原生端通过'retryUrl'参数传递失败链接
        const FAILED_URL = urlParams.get('retryUrl') || '';

        /**
         * 一个统一的、带安全检查的原生方法调用函数
         * @param {string} methodName - 要调用的原生方法名
         * @param {string | undefined} [param] - （可选）要传递给原生方法的参数
         */
        function callNative(methodName, param) {
            const androidInterface = window.WebOS;

            if (androidInterface && typeof androidInterface[methodName] === 'function') {
                console.log(`Calling WebOS.${methodName} with param:`, param);
                if (param !== undefined) {
                    androidInterface[methodName](param);
                } else {
                    androidInterface[methodName]();
                }
            } else {
                const errorMessage = `原生接口 'WebOS.${methodName}' 不可用！`;
                console.error(errorMessage);
                alert(errorMessage);
            }
        }

        // --- 为每个按钮绑定点击事件 ---

        document.getElementById('btn_reload').addEventListener('click', function() {
            if (!FAILED_URL) {
                alert('未从URL中获取到失败的链接(retryUrl)，无法重试。');
                return;
            }
            callNative('reLoad', FAILED_URL);
        });

        document.getElementById('btn_finish').addEventListener('click', function() {
            callNative('finishView');
        });

        document.getElementById('btn_feedback').addEventListener('click', function() {
            callNative('goFeedbackView', 'test_devId_for_feedback');
        });

        document.getElementById('btn_after_sales').addEventListener('click', function() {
            callNative('goAfterSalesView', 'test_devId_for_after_sales');
        });
    });
</script>
</body>
</html>
